package com.youhome.service.service;

import com.youhome.common.enums.ZilLowSearchTypeEnum;
import com.youhome.common.exception.CustomException;
import com.youhome.service.dto.DTOTimeSeriesResult;
import com.youhome.service.model.ZipCode;
import com.youhome.service.response.*;

import java.util.List;

/**
 * Created by chen365 on 2019/04/12.
 */
public interface ZilLowByCityService {


    List<TimeValueItemResult> getTimeSeriesByCity(Integer type, String city, String state, String county,Integer year) throws CustomException;

    List<TimeValueItemResult> getTimeSeriesByCity(Integer type, String city, String state,Integer year) throws CustomException;

    List<TimeValueItemResult> getTimeSeriesByCity(Integer type, String zip,Integer year) throws CustomException;

    List<TimeValueItemResult> getTimeSeriesByCity(Integer type, String zip,Integer year,ZilLowSearchTypeEnum zilLowSearchTypeEnum) throws CustomException;

    BuyerSellerResult get_Buyer_Seller_Index_City(String city, String state) throws CustomException;

    BuyerSellerResult get_Buyer_Seller_Index_City(String zip) throws CustomException;

    BuyerSellerResult get_Buyer_Seller_Index_City(ZipCode zip) throws CustomException;

    ZhviResult get_City_Zhvi_Summary_AllHomes(String zip) throws CustomException;

    ZhviResult get_City_Zhvi_Summary_AllHomes(String city, String state) throws CustomException;

    ZhviResult get_City_Zhvi_Summary_AllHomes(String city, String state, String county) throws CustomException;

    ZriResult get_City_Zri_AllHomes_Summary(Integer type, String zip) throws CustomException;

    ZriResult get_City_Zri_AllHomes_Summary(Integer type, String city, String state) throws CustomException;

    ZriResult get_City_Zri_AllHomes_Summary(Integer type, String city, String state, String county) throws CustomException;

    MarketHealthResult get_Market_Health_Index_City(String city, String state) throws CustomException;

    MarketHealthResult get_Market_Health_Index_City(ZipCode zipCode) throws CustomException;

    List<TimeValueItemResult> getTimeSeriesByCity(Integer key, ZipCode zipCode, Integer year, ZilLowSearchTypeEnum zilLowSearchTypeEnum) throws CustomException;

    BreakEvenPRResult get_Break_Even_PR(Integer key, ZipCode zipCode, Integer year, ZilLowSearchTypeEnum stateCityCounty);

}
